Non-compacting Memory Allocation and Real-time Garbage Collection Dissertation Proposal

نویسندگان

  • Mark S. Johnstone
  • Paul R. Wilson
چکیده

Garbage collection is the automatic reclamation of computer storage Knu73, Coh81, Wil92, Wil95]. While in many systems, programmers must explicitly reclaim heap memory at some point in their program by using a \free" or \dispose" statement, garbage collected systems free the programmer from this burden. In spite of its obvious attractiveness for many applications, garbage collection for real-time programs is not popular. This is largely due to the perceived cost and disruptiveness of garbage collection in general, and of incremental garbage collection in particular. Most existing \real-time" garbage collectors are not in fact usefully real-time, largely due to the use of a read barrier to trigger incremental copying of data structures being traversed by the running application. This may slow down running applications unpredictably, even though individual increments of garbage collection work are small and bounded. We have developed a hard real-time garbage collector which uses a write barrier to only coordinate collection work with modiications of pointers in data structures, therefore making coordination costs cheaper and more predictable. We combine this write barrier approach with implicit non-copying reclamation (\fake copying"), which has most of the advantages of copying collection (notably avoiding both the sweep phase required by mark-sweep collectors, and the touching of garbage objects when reclaiming their space), without the disadvantage of having to actually copy the objects. It has long been believed that fragmentation will be prohibitively high in a non-copying garbage collection algorithm. We address these fragmentation issues with our garbage collector, and compare the fragmentation produced by a number of traditional memory allocation algorithms. In doing this comparison we produce some surprising results demonstrating that methodologies used to study fragmentation , dating back as far as 1961, are fundamentally unsound and biased. We have conducted sound studies that suggest that fragmentation can be kept very low for most real programs using well-known, non-copying policies. Finally, we have extended our garbage collector with generational techniques to attempt to provide excellent average-case eeciency while preserving good soft real-time responsiveness.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Real-Time Compacting Garbage Collection

1. Introduction Traditional batch garbage collection techniques lead to long delays in the programming execution. Different methods to reduce the delays have been suggested. These methods can be divided into two classes: those intended to give acceptable pauses in interactive programs (programs that interact with a user), and those intended for real-time programs. In an interactive program, it ...

متن کامل

Garbage Collection Scheduling for Utility Accrual Real-Time Systems

Utility Accrual (UA) scheduling is a method of dynamic real-time scheduling that is designed to respond to overload conditions by producing a feasible schedule that heuristically maximizes a pre-defined metric of utility. Whereas utility accrual schedulers have traditionally focused on CPU overload, this dissertation explores memory overload conditions during which the aggregate memory demand e...

متن کامل

Scalable Real-time Parallel Garbage Collection for Symmetric Multiprocessors

model for garbage collection. Abstract collector algorithms that are parallel, real-time, and spacesafe.collector algorithms that are parallel, real-time, and spacesafe. Proofs of bounded time and space in the abstract models. Implementing lock-free load-balancing. Proper treatment of global variables, stacks, and generations in the presence of concurrency and real-time bounds. The rst implemen...

متن کامل

Garbage Collection is Fast, But a Stack is Faster

Prompted by claims that garbage collection can outperform stack allocation when sufficient physical memory is available, we present a careful analysis and set of cross-architecture measurements comparing these two approaches for the implementation of continuation (procedure call) frames. When the frames are allocated on a heap they require additional space, increase the amount of data transferr...

متن کامل

Application-assisted physical memory management

Many software applications can, in principle, trade main memory consumption for other resources. For instance, garbage collected language runtimes can trade collection overhead for heap size, and many programs can improve their performance by caching data that was precomputed, read from disk or received from the network. Unfortunately, OSs provide little useful information about physical memory...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996